#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>

void RunChild()
{
    while(1)
    {
        printf("I am child process, pid: %d, ppid: %d \n", getpid(), getppid());
        sleep(1);
    }
}


int main()
{
//  while(1)
//  {
//      sleep(1);
//  }       

//  pid_t pid = getpid();
//  pid_t ppid = getppid();
//  
//  printf("i am a process, pid: %d, ppis: %d \n", pid, ppid);


//  pid_t id = fork();
//  printf("i am a process, pid: %d, ppis: %d \n", getpid(), getppid());

//    pid_t id = fork();
//    if(id < 0)
//    {
//        perror("fork failed\n");
//    }   
//    else if(id > 0)
//    {   
//        printf("id: %d, I am parent process, pid: %d, ppid: %d\n", id, getpid(), getppid());   
//    }
//    else
//    {   
//        printf("id: %d, I am child process, pid: %d, ppid: %d \n", id, getpid(), getppid());
//    }       
//



    const int num = 5;
    for(int i=0; i<num; ++i)
    {
        pid_t id = fork();
        if(id == 0)
        {
            RunChild(); 
        }
        sleep(1);
    }

    while(1)
    {
        // parent process        
        printf("I am parent process, pid: %d, ppid: %d\n", getpid(), getppid());   
        sleep(2);
    }

    return 0;
}

